/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package tk.eigh.ksvg.component.gradients;

import ksvg.core.SVGComponentBase;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
import tk.eigh.ksvg.types.SVGCoordinate;
import tk.eigh.ksvg.types.SVGLength;

/**
 *
 * @author nt
 */
@JSFComponent(name = "svg:RadialGradient",
type = "tk.eigh.svg.RadialGradient",
family = "gradients.RadialGradient",
clazz = "ksvg.gradients.RadialGradient",
tagClass = "ksvg.tags.gradients.RadialGradientTag",
defaultRendererType = "gradients.SVGRadialGradientRenderer",
desc = "Radial gradients are defined by a ‘radialGradient’ element.")
public abstract class AbstractRadialGradient extends SVGComponentBase implements _GradientProperties {

    /**
     * cx = "&lt;coordinate&gt;"
     *<br/>
     * ‘cx’, ‘cy’ and ‘r’ define the largest (i.e., outermost) circle for the
     * radial gradient. The gradient will be drawn such that the 100% gradient
     * stop is mapped to the perimeter of this largest (i.e., outermost) circle.
     * If the attribute is not specified, the effect is as if a value of '50%'
     * were specified.
     *<br/>
     * Animatable: yes.
     */
    @JSFProperty
    public abstract SVGCoordinate getCx();

    /**
     * cy = "&lt;coordinate&gt;"
     *<br/>
     * See ‘cx’. If the attribute is not specified, the effect is as if a value
     * of '50%' were specified.
     *<br/>
     * Animatable: yes.
     */
    @JSFProperty
    public abstract SVGCoordinate getCy();

    /**
     * r = "&lt;length&gt;"
     *<br/>
     * See ‘cx’. A negative value is an error . A value of
     * zero will cause the area to be painted as a single color using the color
     * and opacity of the last gradient stop. If the attribute is not specified,
     * the effect is as if a value of '50%' were specified.
     *<br/>
     * Animatable: yes.
     */
    @JSFProperty
    public abstract SVGLength getRadius();

    /**
     * fx = "&lt;coordinate&gt;"
     *<br/>
     * ‘fx’ and ‘fy’ define the focal point for the radial gradient. The
     * gradient will be drawn such that the 0% gradient stop is mapped to (fx,
     * fy). If attribute ‘fx’ is not specified, ‘fx’ will coincide with the
     * presentational value of ‘cx’ for the element whether the value for 'cx'
     * was inherited or not. If the element references an element that specifies
     * a value for 'fx', then the value of 'fx' is inherited from the referenced
     * element.
     *<br/>
     * Animatable: yes.
     */
    @JSFProperty
    public abstract SVGCoordinate getFx();

    /**
     * fy = "&lt;coordinate&gt;"
     *<br/>
     * See ‘fx’. If attribute ‘fy’ is not specified, ‘fy’ will coincide with the
     * presentational value of ‘cy’ for the element whether the value for 'cy'
     * was inherited or not. If the element references an element that specifies
     * a value for 'fy', then the value of 'fy' is inherited from the referenced
     * element.
     *<br/>
     * Animatable: yes.
     */
    @JSFProperty
    public abstract SVGCoordinate getFy();
}